0 REM"******************************** 1 [143]"* * 2 REM"* === [205]AESTRO 64 === * 3 [143]"* PROG.V. ASCRANS STR$IJKSTRA, 1987 * 4 REM"* * 5 [143]"* GETESTET, BEARBEITET, 'ENT- * 6 REM"* FEHLERT' UND ARTIKEL VON * 7 [143]"* NIKOLAUS HEUSLER, 130388-ARR * 8 REM"* * 9 [143]"******************************** CLOSE 10 IF PEEK(52)>144 THEN POKE52,144: POKE 51,0: POKE56,144 11 TL$="[205]AESTRO 64 VON [198].[196]IJKSTRA / [206].[200]EUSLER [163][163][163][163][163][163][163][163][163][163] 12 TL$[178]TL$[170][199](13)[170]"(C) (null)ARKT & (null)ECHNIK, (null)EDAKTION 64'ER"[170][199](13) 14 [151]53281,13: [151]53280,13: [151]650,128:[139]HQ[167]40 15 TM[178]27[170](([194](65408)[175]192)[178]64)[172]16:[143] EXOS V7 VON NH 16 [153] "LOAD"TL$"(null)AX."TM"(null)EKUNDEN CHR$EDULD, BITTE ! 18 IF PEEK(49152)<> 76 THEN LOAD "MC1",8,1 20 IF PEEK(36864)<> 76 THEN LOAD "MC2+3",8,1 24 HQ=2500: MM%=180: OF=15: PQ=2 26 DIM CP%(3,HQ), DA%(18), RE%(36), GQ%(15,10), DO%(6), T$(50), P(7), Q(6) 28 DEF FNA(X)=X-12*INT(X/12) 30 FOR K=1 TO 96: READ A: NEXT 32 FOR K=0 TO 10: FOR L=0 TO 14: READ GQ%(L,K) :NEXT:NEXT 34 FOR K=0 TO 5: READ DO%(K): NEXT: FOR K=0 TO 7: READ P(K): NEXT 36 FOR K=0 TO 6: READ Q(K): NEXT: FOR K=0 TO 41: READ T$(K): NEXT 38 FOR K=0 TO 1: READ F$(K): NEXT 40 REM "[200]AUPTMENUE------------------------------------------------------------- 42 N[178]0: [141]416: [139] A[178]0 [167] [153]"SERVUS !!":[128] 44 [139] A[177]20 [167] MM%[178]A: [137]42 46 [145] A [141] 430,63,52,448,54,66,404,404 48 [137] 42 50 [143] "(null)USIKEDITOR------------------------------------------------------------ 52 SYS49152,CP%(0,0):RETURN 54 REM"[200]ARMONISIEREN UND SPIELEN----------------------------------------------- 56 [141] 132: [139] OM[179]2 [167] 130 58 N[178]1: [141]416: NE[178]A: N[178]2: [141]416: M0[178]A: N[178]3: [141]416: DO[178]A 60 [158]36869,CP%(0,0),RE%(0),DA%(0),NE,M0,DO%(DO) 62 [143] "(null)PIELEN---------------------------------------------------------------- 63 PRINT"[211]PIEL LAEUFT. [193]BBRUCH MIT [211][200][201][198][212] [210][197][212][213][210][206]. 64 [158]49164,CP%(0,0),MM%,GQ%(0,0):[142] 66 [143]"(null)IEDVARIATIONEN--------------------------------------------------------- 68 VD=1: GOSUB132: IF OM<2 THEN 130 70 NN=INT(HQ/(2*OM)):IF NN>8 THEN NN=8 72 IF NN<2 THEN A=0: GOTO412 74 N=4: GOSUB416: IF VAL(A$)=0 THEN RETURN 75 PRINT"[205][207][205][208][204][211]..... 76 [158]36869,CP%(0,0),RE%(0),DA%(0),3,2,255: CP%(0,RE%(RI)[171](RE%(RI)[179]HQ))[178][171]1 78 [158]39686,CP%(0,0),OM,OM: [158]36869,CP%(0,0),RE%(0),DA%(0),0,0,255: [153] 80 N[178]0: [129] K[178]0 [164] 10: [139] CP%(1,K) [167] N[178]N[170]1 82 [130]: VD[178]0: [139] N[177]7 [167] [158]39689,CP%(0,0): N[178]N[171]2: VD[178]VD[170]2 84 [139] N[177]3 [167] [158]39689,CP%(0,0): VD[178]VD[170]2 86 VD[178]VD[171](VD[178]0): [141]132 : [139] OM[179]2 [167] 130 88 [129] K[178]1 [164] RI: X[178]RE%(K): CP%(0,X)[178]0: CP%(0,X[170]OM)[178]0: [130] 90 OO[178]2[172]OM: [129] K[178]0 [164] HQ[171]OO [169] OO: [158]39686,CP%(0,K),OO,OO: [130]: NB[178]OM 92 [153]"RIGHT$N ATNRBEIT: (null)ARIATION";:[151]198,. 93 [143] CTRL M 94 [129] VA[178]2 [164] NN: WZ[178]1: [139] [194](198) [167] VA[178]NN: [137]122 96 : [139] [202] (A$,WZ,1)[179][177]" " [167] WZ[178]WZ[170]1: [139] WZ[179][178][195](A$) [167]96 98 : Q[178][197]([200](A$,WZ[171]1)): A$[178][202](A$,WZ[170]1): [139] Q[178]0 [167] 122 100 : [153] Q;: [145] Q [141]194,160,252,210,288,296,304 102 : S[178] 1[171](Q[177]5)[171](Q[178]6) 104 : [129] K[178]K1 [164] EW: [158]39698,CP%(0,0),K: [139] [194](720)[178]0 [167] 120 106 : [139] [194](721)[179][177]1 [167] [139] Q[179]7 [167] 120 108 : [139] [194](721)[178]1 [167] [139] Q[178]7 [167] 120 110 : VN[178]K[171]1 112 : [139] CP%(S,VN)[178]0 [167] VN[178]VN[171]1: [137]112 114 : [139] VN[179]K[171]16 [167] 120 116 : [139] Q[178]6 [167] CP%(S,VN)[178]CP%(S,VN)[171]7[172](1[170]2[172](CP%(S,VN)[179]38)): [137]120 118 : CP%(S,VN)[178]CP%(S,VN)[171]5[172](1[170]2[172](CP%(S,VN)[179]71)) 120 : [130] K: CP%(0,K1[171]2)[178][171]101 122 [130] VA 124 [158]39680,CP%(0,M),2: CP%(0,1)[178]266: CP%(0,0)[178]1068 126 [139] NB[179]HQ [167] CP%(0,NB[170]1[170](NB[177][178]HQ))[178][171]1 128 [153]: [137]64 130 A[178]1: [137]412 132 [158]36864,CP%(0,0),RE%(0),DA%(0): RI[178]RE%(0): OM[178]RE%(RI)[170]VD: [142] 134 [143] "VALRSTE (K1) UND LETZTE (EW) (null)OTE EINER (null)ARIATION BESTIMMEN-------------- 136 REM "UND ERSTE [206]OTE DER NAECHSTEN [214]ARIATION (NB) 138 K1[178]NB 140 [139] CP%(1,K1)[178]0 [167] K1[178]K1[170]1: [139] K1[179][178] EW [167] 140 142 NB[178]K1[170]OM: EW[178]NB[171]1 144 [139] CP%(1,EW)[178]0 [167] EW[178]EW[171]1: [139] EW[177][178]0 [167] 144 146 [142] 148 [143]"ATNBSTAND (OF) UND (null)ONINTERVALL (IN)-------------------------------------- 150 REM"ZUR NAECHSTEN [206]OTE BESTIMMEN 152 OF[178]1: LT[178]CP%(S,K) 154 [139] CP%(S,K[170]OF) [167] IN[178]CP%(S,K[170]OF)[171]LT: [142] 156 OF[178]OF[170]1: [139] OF[178][179]EW[171]K [167] 154 158 [142] 160 [143] "(null)OPRANFIGURATION, FREI------------------------------------------------- 162 GOSUB136: CP%(0,K1-1)=261: NG=0 164 K=K1 166 GOSUB198 168 : VL=0: RN=0 170 : FOR KK= 1-(NG>0) TO OF-1 172 : IF NG THEN IF KK=5 THEN 180 174 : IF RN=0 THEN IF NG=0 THEN IF INT(RND(0)*2) THEN RN=1: GOTO180 176 : IF VL THEN VL=0: CP%(1,K+KK)=AL: GOTO180 178 : CP%(1,K+KK)=BA: VL=1 180 : GOSUB188 182 : NEXT KK: GOSUB188 184 K=K+KK: IF K=E1 THEN RETURN 228 GOSUB148: IF OF<2*PQ THEN K=K+PQ: GOTO226 230 IF ABS(IN)>=OF/2 THEN IF IN<>0 THEN 234 232 CP%(S,K+PQ)=CP%(S,K)+IN-(1+OF/PQ)*SGN(RND(0)-.5): GOTO236 234 CP%(S,K+PQ)=CP%(S,K)+PQ*INT(IN/OF) 236 K=K+PQ: GOSUB238: GOTO228 238 REM "[206]OTE K IN [211]TIMME S ERSETZEN DURCH [205]ELODIENOTE------------------------ 240 AA[178]0: BB[178]1 242 CP%(S,K)[178]CP%(S,K)[170]AA[172]BB: A[178][165]A(CP%(S,K)): [139] A[179]0 [167] A[178]A[170]12 244 [139] A[177]11 [167] A[178]A[171]12 246 [139] DA%(A) [167] [142] 248 AA[178]AA[170]1: BB[178]BB[172][171]1:[139] AA[179]6 [167] 242 250 [142] 252 [143] "(null)RIOLENVARIATION------------------------------------------------------- 254 GOSUB136: CP%(0,K1-1)=262 256 FOR K=K1 TO EW-1 STEP 4 258 : CP%(0,K)=33: CP%(0,K+1)=33: CP%(0,K+2)=-67: CP%(0,K+3)=-67 260 : FORS=1TO3: CP%(S,K+3)=0: NEXT S 262 NEXT K 264 FOR K=K1 TO EW-1 STEP 4 266 : S=1: GOSUB148: IF OF<4 THEN 286 268 : IFIN<25THEN272 270 : CP%(1,K)=CP%(1,K-2)+4*SGN(.5+(((K-K1)AND32)=0)): S=1: GOSUB238 272 : FOR L=0 TO 1: K=K+1: TR=1 274 : CP%(1,K)=CP%(1,K-TR)+2 276 : IF CP%(1,K)<24 THEN TR=TR+1: IF TR<=K THEN274 278 : IF ((K-K1)AND32)<>0 THEN CP%(1,K)=CP%(1,K)-4 280 : IF L THENCP%(1,K)=CP%(1,K)+4*SGN(.5+(((K-K1)AND32)=0)) 282 : S=1: GOSUB238 284 : NEXT L: K=K-2 286 NEXT K: RETURN 288 REM "6/8-[212]AKTVARIATION------------------------------------------------- 290 [141]136: CP%(0,K1[171]1)[178]264 292 [129] K[178]K1[170]4 [164] EW[171]1 [169] 8 294 [129] L[178]0 [164] 3: CP%(0,K[170]L)[178][171]100:[130] L : [130] K: K[178]K1: [137]222 296 [143] "PEEKASSFIGURATION--------------------------------------------------------- 298 GOSUB136: CP%(0,K1-1)=257: K=K1 300 IF CP%(3,K)=0 THEN K=K+1: GOTO300 302 S=3: E1=EW: GOTO224 304 REM"[198]UGE-------------------------------------------------------------------- 306 [141]136: CP%(0,K1[171]1)[178]256 308 [139] RI[177]1 [167] LE[178](RE%(1)[170]VD[170]RE%(RI)[171]RE%(RI[171]1))[172]3 310 [139] RI[178]1 [167] LE[178](RE%(1)[170]VD)[172]6 312 [139] LE[177]OM [167] [158]39680,CP%(0,K1[170]OM),LE[171]OM: NB[178]NB[170]LE[171]OM 314 [139] LE[179]OM [167] [158]39683,CP%(0,K1[170]LE),OM[171]LE: NB[178]NB[171]OM[170]LE 316 K[178]K1: K0[178]K1: R[178]1: [141]380 318 S1[178]2: K[178]K1: [141]362: K1[178]K1[170]LN: [141]368 320 [129] K[178]K1[171]LN [164] K1[170]LN[171]1 322 : X[178]CP%(1,K): [139] X[177]12 [167] CP%(1,K)[178]0: CP%(3,K)[178]X[171]12 324 [130]: CP%(1,K1[171]LN)[178][171]1 326 K[178]K1[170]LN[172]2: K1[178]K: R[178]RI: LO[178]LN: [141]380 328 S1[178]3: K[178]K1: [141]362: K1[178]K1[170]LN: [141]368 330 K1[178]K0[170]LO[171]1: K2[178]K1[170]LO 332 [139] CP%(1,K2)[178]0 [167] K2[178]K2[170]1: [137]332 334 [139] CP%(3,K1)[178]0 [167] K1[178]K1[171]1: [137]334 336 K3[178]K2[170]LO[170]LN: K4[178]K3[170]LN: EW[178]NB[171]1 338 [141]386: K[178]K1: S[178]3: E1[178]K2: [141]224: K1[178]K0 340 [139] CP%(2,K2)[178]0 [167] K2[178]K2[171]1: [137]340 342 [139] CP%(2,K3)[178]0 [167] K3[178]K3[170]1: [137]342 344 [141]394: K[178]K2: S[178]2:E1[178]K3: [141]224 346 [139] CP%(1,K3)[178]0 [167] K3[178]K3[171]1:[137]346 348 [139] CP%(1,K4)[178]0 [167] K4[178]K4[170]1:[137]348 350 [141]386: K[178]K3: S[178]1: E1[178]K4: [141]224 352 [139] CP%(2,K4)[178]0 [167] K4[178]K4[171]1: [137]352 354 [139] CP%(2,EW)[178]0 [167] EW[178]EW[171]1: [137]354 356 [141] 394: K[178]K4: S[178]2: E1[178]EW: [141]224 358 [129] K[178]EW[171]8 [164] EW[171]5: CP%(0,K)[178]20: CP%(0,K[170]4)[178]25: CP%(0,K[170]8)[178]35: [130] 360 EW[178]NB[171]1: [142] 362 [143]"(null)TIMME S1 BIS 3 LOESCHEN UEBER (null)TRECKE LN------------------------------- 364 KB=K:FOR K=K TO K+LN-1: FOR S=S1 TO 3: CP%(S,K)=0: NEXT: NEXT 366 FORS=S1TO3:CP%(S,KB)=-1:NEXT: RETURN 368 REM"[211]TIMMEN 1 UND 2 VERTAUSCHEN UND IN DEN [196]OMINANT TRANSPONIEREN----------- 370 [129] K[178]K1 [164] K1[170]LN[171]1: CP%(3,K)[178]0: AL[178]CP%(2,K): SP[178]CP%(1,K) 372 [139] AL[178]0 [167] [139] SP[178]0 [167]378 374 CP%(1,K)[178]AL[171]7[172](AL[177]0): CP%(2,K)[178]SP[170]5[172](SP[177]0) 376 [139] CP%(1,K)[179]CP%(2,K) [167] CP%(1,K)[178]CP%(1,K)[170]12: [137]376 378 [130]: [142] 380 [143]"(null)EILE R DREIMAL IN DIE ASCUGE KOPIEREN------------------------------------ 382 LN=RE%(R)+VD: IF R>1 THEN LN=LN-RE%(R-1)-VD 384 SYS39692,CP%(0,0),K,LN,R,K1,OM:RETURN 386 REM"[212]ONLEITER IN DEN [196]OMINANT TRANSPONIEREN--------------------------------- 388 K[178]18 390 DA%(K)[178]DA%(K[171]7): K[178]K[171]1: [139] K[177]6 [167]390 392 [129] K[178]0 [164] 6:DA%(K)[178]DA%(K[170]12): [130]: [142] 394 [143]"(null)ONLEITER IN DIE (null)ONICA ZURUECK TRANSPONIEREN--------------------------- 396 FOR K=0 TO 11: DA%(K)=DA%(K+7): NEXT: RETURN 398 REM MUSIK LOESCHEN---------------------------------------------------------- 400 SYS 49155,CP%(0,0): RETURN 402 REM SAVE ODER LOAD --------------------------------------------------------- 404 NM$="": INPUT "[198]ILENAME";NM$:IF NM$=""THEN RETURN 405 IFA=7THENPRINT"[211]CRATCHING "NM$:OPEN45,8,15,"S0:"+NM$:CLOSE45:GOSUB900 406 POKE0,111:PRINT"[205][207][205][208][204][211].....":SYS49158+3*(A-7),CP%(0,0),NM$,8,0:POKE0,47 407 GOSUB900 : REM DIE POKES 0,XXX 'BEDIENEN' DEN FASTLOADER EXOS V7 408 REMPRINT"[208]RINTROUTINE NOCH NICHT VORHANDEN 410 [143]"ATNUF (null)ASTENDRUCK WARTEN-------------------------------------------------- 412 PRINT F$(A):PRINT"([212]ASTE)":POKE198,0: WAIT 198,1:POKE198,0: RETURN 414 REM"[205]ENUE------------------------------------------------------------------ 416 [151]198,0 418 [153] T$(P(N)):[129] K[178]0 [164] P(N[170]1)[171]P(N)[171]2:[153] K[171](N[178]4)"CMD. "T$(1[170]P(N)[170]K):[130] 420 A$[178]"":[139] N[178]0 [167] [153]"20 - 511: (null)EMPO (IST"MM%"CMD)": A$[178]"19" 422 [139] N[179][177]4 [167] [153] "PEEKEFEHL (0 -"Q(N)"CMD)";:[137]428 424 [153]"(null)AEHLEN (null)IE HOECHSTENS"NN[171]1"(null)ARIATIONEN IN FREIER ASCOLGE, "; 426 [153]"DIE (null)UMMER(N) GETRENNT DURCH (null)EERSTELLEN.": [153]" 1 3 4 5 6 2 7ON" 428 [133] A$: A[178][197](A$): [153]: [142] 430 [143]"PEEKEISPIELMELODIE--------------------------------------------------------- 432 N=6: A=0: GOSUB416: IF A=0 THEN RETURN 434 PRINT"[205][207][205][208][204][211].....":SYS49155,CP%(0,0): RESTORE 436 FOR K=0 TO 31 438 : FOR S=0 TO 1: READ A: CP%(S,K)=A: CP%(S,K+64)=A: NEXT: NEXT 440 FOR K=0 TO 15 442 : FOR S=0 TO 1: READ A: CP%(S,K+32)=A: CP%(S,K+48)=A: NEXT: NEXT 444 CP%(0,48)=522: CP%(0,64)=527:CP%(0,95)=-1: GOSUB64: GOTO66 446 REM"[211]PEZIELLE [198]UNKTIONEN--------------------------------------------------- 448 N[178]5: A[178]0: X[178]0: Y[178]0: Z[178]0: [141]416: [139] A[178]0 [167] [142] 450 [133]"ATN UND PEEK ";X,Y: [139] X[179]0 [176] X[177]HQ [167] 476 452 [139] A[178]3 [175] X[170]Y[177]HQ [167]476 454 [139] A[179][177]3 [167] [139] Y[179]X [176] Y[177]HQ [167] 476 456 [139] A[178]1 [176] A[177]3 [167] [133]"LEN ";Z:[139] A[178]1 [167] [139] Z[179][171]11 [176] Z[177]11 [167] 478 458 [139] A[178]1 [167] [139] Z[179]0 [167] Z[178]Z[170]256 460 [139] A[179]4 [167] 464 462 [139] Z[179]Y [176] Z[170]Y[171]X[177]HQ [167] 478 464 [139] A[178]1 [167] [158]39695,CP%(0,X),Y[171]X,Z: [142] 466 [139] A[178]2 [167] [158]39683,CP%(0,X),Y[171]X: [142] 468 [139] A[178]3 [167] [158]39680,CP%(0,X[170]1),Y: [142] 470 [158]39680,CP%(0,Z[170]1),1[170]Y[171]X 472 [158]39686,CP%(0,X),1[170]Z[171]X,1[170]Y[171]X:[139] A[178]5 [167] A[178]2: Y[178]Y[170]1:[137]466 474 [142] 476 [153]"ON";: [137]450 478 [153]"ON";: [137]456 480 [143]"STR$ATEN FUER PEEKEISPIELMELODIE---------------------------------------------- 482 DATA,55,,,,55,,,,62,,,,62,,,,64,,,,64,,,-112,62,,, 484 DATA,,,,60,-109,60,,60,-109,60,,59,,,,59,,,,57,,,,57,,,,55,,,,,-108, 486 DATA,62,,,,62,,,,60,,,,60,,,,59,,,,59,,,,57,,,,,-108, 488 REM"[196]ATEN FUER [203]LANGBIBLIOTHEEK-------------------------------------------- 490 [131]11,64,9,6,5,64,9,6,8,64,10,6,64,,79 492 [131]8,64,4,24,8,64,4,24,8,64,4,24,64,,79 494 [131]6,64,27,89,6,64,27,88,11,64,11,87,64,,79 496 [131],32,11,,,32,11,,,32,8,,64,,79 498 [131],32,51,,,32,51,,,32,51,,64,,79 500 [131]12,32,104,24,12,32,104,42,12,32,104,42,64,,79 502 [131]9,16,57,,9,16,57,,9,16,57,,64,,79 504 [131]15,16,9,25,15,16,9,25,15,16,9,25,64,,79 506 [131]10,16,39,73,10,16,39,73,10,16,39,73,64,,79 508 [131],32,7,25,3,64,9,25,,16,9,121,64,,79 510 [131]8,64,9,6,8,64,9,6,8,64,9,6,64,,79 512 [143]"STR$ATEN FUER (null)ONARTVERHAELTNISSE------------------------------------------ 514 DATA 255,,10,8,5,3 516 REM"[196]ATEN FUER [205]ENUES 518 [131],11,13,17,24,32,39,42,511,5,2,5,,5,1 520 [131]"LOAD************ (null)AESTRO 64 *************","VALNDE","PEEKEISPIEL","(null)PIELEN 522 DATA"[197]DITOR","[211]PEZIELLE [198]UNKTIONEN","[200]ARMONIE","[204]IEDVARIATIONEN 524 [131]"(null)PEICHERN","(null)ADEN","CMDCMDCMD ","LOADLEFT$ARMONIEPARAMETER 526 DATA"[200]ARMONISCHE [198]ARBE","[214]ORRANG DER [211]EPTAKKORDE","[203]EINE","[193]BSOLUT 528 [131]"PEEKESCHRAENKT","(null)ONART","(null)NBEKANNT","STR$UR","STR$ORISCH","(null)HRYGISCH 530 DATA"[205]YXOLYDISCH","[193]EOLISCH ([205]OLL) 532 [131]"LOAD(null)ARIATIONSFORMEN","ASCIGURATION, STRENG","ASCIGURATION, FREI","(null)RIOLEN 534 DATA"[212]ENORVARIATION","6/8-[212]AKT","[194]ASSFIGURATION","[198]UGE 536 [131]"LOAD(null)PEZIELLE ASCUNKTIONEN","(null)URUECK ZUM LEFT$AUPTENUE 538 DATA"[206]OTEN [193] BIS [194] UM [195] [200]ALBTONSCHRITTE TRANSPONIEREN 540 [131]"(null)OTEN ATN BIS PEEK ENTFERNEN 542 DATA"[206]ACH [206]OTE [193] [194] [206]OTEN EINFUEGEN","[206]OTEN [193] BIS [194] NACH [195] KOPIEREN 544 [131]"(null)OTEN ATN BIS PEEK NACH LEN VERSCHIEBEN 546 DATA"[147][194]EISPIEL","[218]URUECK ZUM [200]AUPTMENUE","[194]EISPIELMELODIE 548 [131]"(null)ELODIE ZU LANG","(null)EINE (null)ELODIE IM (null)PEICHER 900 REM --- DISKETTE --- 901 OPEN167,8,15:PRINT:PRINT">"; 902 GET#167,A$:PRINTA$;:IFA$<>CHR$(13)THEN902 903 CLOSE167: RETURN